/**
 * 对象工具函数模块
 */

/**
 * 深拷贝对象
 * @param {Object} obj - 要拷贝的对象
 * @returns {Object} - 拷贝后的新对象
 */
export const deepClone = (obj) => {
  // TODO: 实现对象深拷贝
};

/**
 * 检查对象是否为空
 * @param {Object} obj - 要检查的对象
 * @returns {boolean} - 是否为空对象
 */
export const isEmpty = (obj) => {
  // TODO: 实现对象空值检查
};

/**
 * 合并多个对象
 * @param {...Object} objects - 要合并的对象
 * @returns {Object} - 合并后的新对象
 */
export const merge = (...objects) => {
  // TODO: 实现对象合并
};

/**
 * 从对象中获取指定路径的值
 * @param {Object} obj - 源对象
 * @param {string} path - 属性路径，如 'a.b.c'
 * @param {*} [defaultValue] - 默认值，当路径不存在时返回
 * @returns {*} - 获取到的值或默认值
 */
export const get = (obj, path, defaultValue) => {
  // TODO: 实现获取对象嵌套属性
};

/**
 * 选取对象中的部分属性构成新对象
 * @param {Object} obj - 源对象
 * @param {Array<string>} keys - 要选取的属性名数组
 * @returns {Object} - 选取后的新对象
 */
export const pick = (obj, keys) => {
  // TODO: 实现对象属性选择
}; 